import time
import sys
import win32gui
import atexit
import pyuac
import os

from package.Utils.MainWindow import app,myWin  # 导入app,myWin对象
from package.Utils.log import logger,mylog  # 导入 logger 对象(python代码)
from package.Utils.cmd import mycmd,cleanup  # 导入 mycmd (配置文件)

def Window_Main():
    myWin.show()  # 在桌面显示控件 myWin
    sys.exit(app.exec_())  # 结束进程，退出程序

if __name__ == '__main__':
    atexit.register(cleanup)
    if not pyuac.isUserAdmin():
        # 先隐藏原进程窗口，再退出
        try:
            win32gui.ShowWindow(mycmd, 0)
        except:
            pass

        # 请求管理员权限并退出原进程
        pyuac.runAsAdmin()
        os._exit(0)  # 使用 os._exit(0) 强制终止，跳过 atexit 清理
    else:
        try:
            win32gui.ShowWindow(mycmd, 0)
        except:
            pass
        if mylog.log_enabled is True:
            logger.info(f"Logger Start")
        Window_Main()  # 调用Window_Main函数